Complementary and shadow calendars

ABSTRACT

One or more techniques and/or systems are provided for constructing a complementary calendar and/or a shadow calendar. A user may maintain a primary calendar within which the user may schedule user specified tasks and/or meetings, but may inadvertently omit other entries. Accordingly, a complementary calendar may be constructed based upon inferences derived from user signal data (e.g., information used to identify/infer activities of the user, such as social network profile information, messages, temporal information, locational information, documents, etc.). The complementary calendar may be automatically populated with entries corresponding to inferences derived from user signals and/or real-time conditions (e.g., weather, store hours, traffic conditions, etc.). The primary calendar and the complementary calendar may be merged to create a shadow calendar. The complementary calendar and/or the shadow calendar may be displayed to the user and/or may be used to provide dynamic notifications and/or suggestions to the user (e.g. regarding conflicting entries/obligations, etc.).

BACKGROUND

Many users maintain primary calendars for managing meetings and/orspecific tasks. For example, a user may maintain a social networkcalendar within a social network and/or an office productivity calendarwithin an office suite. The user may populate such primary calendarswith user entries, such as a work meeting entry, a get gas entry, and/orother user entries specified by the user.

SUMMARY

This summary is provided to introduce a selection of concepts in asimplified form that are further described below in the detaileddescription. This summary is not intended to identify key factors oressential features of the claimed subject matter, nor is it intended tobe used to limit the scope of the claimed subject matter.

Among other things, one or more systems and/or techniques forconstructing a complementary calendar and/or a shadow calendar areprovided herein (e.g., where a user opts-in and/or otherwise acquiescesto the same). A user may have a primary calendar through which the usermay create user entries for meetings, events, activities, and/or tasks.However, the primary calendar may not take into account certainobligations, conflicting appointments, etc. (e.g., an obligation thatthe user fails to enter into the primary calendar, an obligation savedin a different calendar than the primary calendar such as a socialnetwork calendar and thus not taken into account by the primarycalendar, a commute time from home to work that is not entered into theprimary calendar (e.g., and thus not indicated as time that the user maybe unavailable to attend a meeting)). Accordingly, as provided herein, acomplementary calendar may be constructed based upon user signalsassociated with a user of a device. In an example, a social networkprofile (e.g., social network posts, social network messages, a userprofile indicating hobbies or interest of the users, etc.) may beevaluated to identify an activity of the user as the user signal (e.g.,a Monday dinner activity with Jen may be identified based upon Jenposting a message “let's do dinner next Monday” on the user's socialnetwork profile). In another example, a context of the user's device maybe evaluated to identify an activity of the user as the user signal(e.g., a device location may be indicative of the user going to soccerpractice at a soccer field on Tuesdays; a device location check-in maybe indicative of the user going out on a movie date on Sundays (e.g.,the user may check-in through a social network); a connectivity state,such as Wi-Fi connectivity, may indicate that the user is at home, inthe office, or at a coffee shop; a charging state, such as a carcharging state, may indicate that the user is currently driving; avacation itinerary file on the device may indicate that the user will begoing on a vacation in a week; etc.). It may be appreciated that a widevariety of information, such as temporal information and/or locationalinformation, may be evaluated to identify user signals and/or supplementuser signals (e.g., the primary calendar may be used to identifyconflicts and/or verify activities derived from user signals; a usersignal may be evaluated against real-time data. such as trafficinformation, weather, or supplemental information, in order to generatea dynamic notification and/or suggestion, such as a suggestion to bringan umbrella to watch a soccer game because it is raining; etc.). In thisway, the complementary calendar may be constructed with one or moreentries derived from user signals (e.g., automatically generated entriesbased upon inferred activities).

In an example, the complementary calendar may be merged with one or morecalendars (e.g., the primary calendar, a family calendar, a socialnetwork calendar, etc.) to create a shadow calendar comprising at leastsome of the complementary calendar (e.g., automatically generatedentries derived/inferred from user signals) and at least some of the oneor more calendars (e.g., user entries populated within the primarycalendar by the user). Scheduling conflicts may be identified based uponthe complementary calendar and/or the shadow calendar (e.g., a userentry may indicate that the user has a 9:00-9:30 Monday work meeting andan entry within the complementary calendar may indicate that the user isto meet his a friend for coffee at 9:15 on Monday based upon a socialnetwork post). A conflict alert and/or a conflict suggestion may beprovided based upon the conflict (e.g., a conflict suggestion to send anautomated message to the friend for rescheduling the coffee meetinguntil after the 9:00 work meeting, such as at 9:45 based upon a 15minute commute from work to the coffee shop). The complementary calendarand/or the shadow calendar may be provided, such as displayed, to theuser (e.g., through a web service, a website, an app, a social networkprofile, a mobile device, etc.). In an example, suggestions (e.g., asuggestion to try a new restaurant based upon a dinner date entry withinthe complementary calendar and a restaurant opening article mined from anews website), dynamic notifications (e.g., a notification to wear arain jacket based upon a running entry within the complementary calendarand weather information), alerts (e.g., an alert of an upcoming activitywithin the complementary calendar), conflicts, and/or other informationmay be provided based upon the complementary calendar and/or the shadowcalendar (e.g., as opposed to merely displaying such calendars).

To the accomplishment of the foregoing and related ends, the followingdescription and annexed drawings set forth certain illustrative aspectsand implementations. These are indicative of but a few of the variousways in which one or more aspects may be employed. Other aspects,advantages, and novel features of the disclosure will become apparentfrom the following detailed description when considered in conjunctionwith the annexed drawings.

DESCRIPTION OF THE DRAWINGS

FIG. 1 is a flow diagram illustrating an exemplary method ofconstructing a complementary calendar.

FIG. 2 is an illustration of an example of identifying user signalsassociated with a user of a device.

FIG. 3 is a component block diagram illustrating an exemplary system forconstructing a complementary calendar.

FIG. 4 is a component block diagram illustrating an exemplary system forproviding a dynamic notification.

FIG. 5 is a component block diagram illustrating an exemplary system forproviding a suggestion based upon user signal data and/or acomplementary calendar.

FIG. 6 is a component block diagram illustrating an exemplary system forconstructing a shadow calendar.

FIG. 7 is a component block diagram illustrating an exemplary system forproviding a conflict alert based upon a shadow calendar.

FIG. 8 is a component block diagram illustrating an exemplary system forproviding a dynamic notification based upon a complementary calendar.

FIG. 9 is an illustration of an exemplary computer readable mediumwherein processor-executable instructions configured to embody one ormore of the provisions set forth herein may be comprised.

FIG. 10 illustrates an exemplary computing environment wherein one ormore of the provisions set forth herein may be implemented.

DETAILED DESCRIPTION

The claimed subject matter is now described with reference to thedrawings, wherein like reference numerals are generally used to refer tolike elements throughout. In the following description, for purposes ofexplanation, numerous specific details are set forth in order to providean understanding of the claimed subject matter. It may be evident,however, that the claimed subject matter may be practiced without thesespecific details. In other instances, structures and devices areillustrated in block diagram form in order to facilitate describing theclaimed subject matter.

An embodiment of constructing a complementary calendar is illustrated byan exemplary method 100 of FIG. 1. At 102, the method starts. At 104, auser signal associated with a user of a device (e.g., a mobile device, apersonal computer, a GPS device, a sports watch, glasses, a videogameconsole, a vehicle embedded system, etc.) may be identified. In anexample, a social network profile of the user may be evaluated toidentify an activity of the user as the user signal, such as a baseballgame activity identified from a social network post and message betweenthe user and another user. In another example, a device context (e.g., adevice location, a device time, a mode of transportation, a devicelocation check-in, an alarm, a charging state, a connectivity state, oruser data stored on the device), such as a video game console preorderreceipt stored on the device, may be evaluated to identify a video gameconsole release pickup activity. In another example, the user signal maycomprise temporal information, locational information, and/or a widevariety of information that may be used to identify a (e.g., recurring)activity based upon the user signal (e.g., the device may have alocation corresponding to a breakfast restaurant on Saturdays, which mayindicate the user has a routine of eating breakfast at the breakfastrestaurant on Saturdays).

At 106, a complementary calendar may be constructed. The complementarycalendar may be populated with one or more entries derived from usersignals. For example, an entry may correspond to an activity orrecurring activity identified from the user signal. In this way, thecomplementary calendar may be automatically populated with a pluralityof entries corresponding to inferences derived from user signals,real-time conditions (e.g., a videogame launch date news article andhours of a store may be used to create a preordered videogame consolepickup activity), or a primary calendar of the user (e.g., a commutehome activity from 12:00 to 12:40 may be derived from a Saturday11:00-12:00 lunch meeting user entry within a primary calendar, and maybe scheduled based upon an estimated commute from a location of thelunch meeting to home). In an example, a user activity inference may begenerated based upon the primary calendar (e.g., a book flight and hoteltask may be used to infer a rent car user activity inference). The useractivity inference may be populated within the complementary calendar asa second entry. In an example, the entry within the complementarycalendar may be verified and/or adjusted based upon the primary calendar(e.g., a recurring Saturday breakfast entry may be invalidated basedupon the primary calendar indicating the user will be traveling on abusiness trip out of town on Saturday).

In an example, the complementary calendar may be displayed. For example,the complementary calendar may be display on the device or may be madeavailable to other devices, such as through a website, web service, orcloud service. Because an entry may be created as an inference of anactivity that the user may perform, the entry may be augmented basedupon a confidence metric indicative of a confidence that the entrycorresponds to an activity that the user will actually perform (e.g., arent car user activity inference may be a low confidence rating becausethe user may not need to rent a car while on vacation, and thus a rentcar entry may be augmented, such as displayed in grey as opposed to amore prominent color).

Notifications, dynamic notifications, suggestions, conflicts, and/orother information may be provided based upon the complementary calendar(e.g., regardless of whether or not the complementary calendar isdisplayed to the user). In an example, a notification of an entry may beprovided (e.g., an alert of an upcoming breakfast activity may beprovided). In another example, a dynamic notification may be providedbased upon evaluating a user signal against traffic information, weatherinformation, real-time data (e.g., business hours; a news articleindicating a closure of a business; a social network profile of a parkindicating a closure of a running trail due to flooding; etc.), and/orsupplemental information. For example, a dynamic notification to try adifferent running trail as opposed to a flooded running trail may beprovided based upon a running activity entry and a social networkprofile of the park. In another example, a notification of a meetingattendance delay may be provided to one or more meeting attendees of ameeting based upon traffic information and/or a current location of auser indicating that the user will be late to the meeting. In anotherexample, a suggestion may be provided based upon the user signal and/orthe complementary calendar (e.g., a suggestion to watch a new trailerfor a movie based upon a user signal corresponding to a social networkmessage from Colleen to the user about seeing the movie).

In an example, the complementary calendar may be merged with the primarycalendar to create a shadow calendar comprising at least some of thecomplementary calendar (e.g., automatically generated entriesderived/inferred from user signals) and at least some of the primarycalendar (e.g., user entries populated within the primary calendar bythe user). Scheduling conflicts may be identified based upon thecomplementary calendar and/or the shadow calendar (e.g., a user entrymay indicate that the user has a gardening meeting from 3:00-4:00 onSunday, and an entry within the complementary calendar may indicate thatthe user is to deliver a package to a friend at 3:30 on Sunday). Aconflict alert and/or a conflict suggestion may be provided based uponthe conflict (e.g., a conflict suggestion to deliver the package at 4:45and/or to send an automated message to the friend about the new deliverytime). In an example, the shadow calendar may be displayed to the userand/or may be used to provide notifications, dynamic notifications,suggestions, conflicts, and/or other information (e.g., regardless ofwhether or not the shadow calendar is displayed to the user). At 108,the method ends.

FIG. 2 illustrates an example 200 of identifying user signals associatedwith a user 202 of a device 204. In an example, memberships 206 of theuser 202 may be identified as user signals (e.g., a gym membership maybe used to identify a workout location for the user; a movie clubmembership may be used to identify a preferred movie theater and/orcoupons for the user; etc.). In another example, a social networkprofile 208 may be evaluated to identify user signals (e.g., an “Isigned up for marathon” post may be used to identify a marathonactivity; a “lets meet for dinner” message may be used to identify adinner activity; etc.). In another example, a device context 212 may beevaluated to identify user signals (e.g., reservation data of arestaurant app on the device 204 may be used to identify a dinneractivity; a videogame release tracking app may be used to identify apreorder video game console activity; etc.). In another example,real-time data 216 may be evaluated to identify and/or evaluate usersignals (e.g., gym hours; store inventory available for a videogameconsole; a closing of a coffee shop that the user routinely visits onSaturday; etc.). In another example, activity data 210 may be inferredbased upon user signals (e.g., a sushi takeout activity on Mondays maybe identified based upon device locations of the device 204 on Mondayscorresponding to a sushi restaurant; a soccer practice activity onTuesdays may be identified based upon device locations of the device 204on Tuesdays corresponding to a soccer field; etc.). User signals may beverified and/or adjusted based upon a primary calendar 214 of the user202 (e.g., a cancel soccer club membership calendar entry within theprimary calendar 214 may be used to determine that the soccer practiceactivity on Tuesdays may be stale or irrelevant).

FIG. 3 illustrates an example of a system 300 for constructing acomplementary calendar 304. The system 300 comprises a calendarconstruction component 306. The calendar construction component 306 maybe configured to identify user signal data 302 associated with a user202 of a device 204 (e.g., FIG. 2). The calendar construction component306 may be configured to construct the complementary calendar 304 basedupon the user signal data 302, such as by populating the complementarycalendar 304 with one or more entries derived/inferred from the usersignal data 302. In an example, the calendar construction component 306may construct the complementary calendar 304 based upon one or morecalendars of the user (e.g., a family calendar, a social networkcalendar, a soccer team schedule calendar, and/or other potentialcalendars). In an example, a pickup sushi activity entry may bepopulated within the complementary calendar 304 based upon temporaland/or location information indicating that the user routinely picks upsushi on Mondays. Supplemental information, such as a coupon link and/ora menu link, maybe populated within the pickup sushi activity entry. Inanother example, a soccer practice activity entry may be populatedwithin the complementary calendar 304 based upon a soccer teammembership of the user with a soccer team and/or a soccer practiceschedule published through a website of the soccer team. Supplementalinformation, such as a weather forecast link and/or a traffic link, maybe populated within the soccer practice activity entry. In anotherexample, a get gas activity entry may be populated within thecomplementary calendar 304 based upon a current gas status of a uservehicle. Supplemental information, such as an interactive gas price map,may be populated within the get gas activity entry.

In another example, a pre-order movie tickets activity entry may bepopulated within the complementary calendar 304 based upon a socialnetwork message of the user indicating a movie date night to a moviethat is to be released on Thursday. Supplemental information, such as aview new trailer link, may be populated within the pre-order movietickets activity entry. In another example, a dinner date with wifeactivity entry may be populated within the complementary calendar 304based upon an email between the user and the user's spouse. Supplementalinformation, such as a restaurant app link to a restaurant app on thedevice 204, may be populated within the dinner date with wife activityentry. In another example, a videogame console release activity entrymay be populated within the complementary calendar 304 based upon apreorder receipt file on the device 204 (e.g., because the videogameconsole release activity may have a relatively lower confidence of beingcorrect, the videogame console release activity entry may be augmented,such as displayed with a dashed box). Supplemental information, such asa suggestion to set an alarm for 4:00 am so that the user may stand inline for a 6:00 am release event, may be populated within the videogameconsole release activity entry. In another example, a run to gymactivity entry may be populated within the complementary calendar 304based upon a mode of transportation indicating a running transportationmode on Sundays to a gym location. Supplemental information, such as aweather forecast link and/or a gym class schedule obtained from a gymwebsite, may be populated within the run to gym activity entry.

FIG. 4 illustrates an example of a system 400 for providing a dynamicnotification 414. The system 400 comprises a calendar constructioncomponent 306. In an example, the calendar construction component 306constructed a complementary calendar 304 (e.g., FIG. 3). The calendarconstruction component 306 may evaluate the complementary calendar 304,a primary calendar 214, one or more potential official calendars 416(e.g., a family calendar, a soccer schedule calendar, a school schedulecalendar, a social network calendar, etc.), and/or contextualinformation 402 (e.g., user signal data 404 indicating the user drivesfrom home to a mall on Sundays; real-time data 406 indicating that themall is closing early due to holiday hours; traffic information 408indicating a traffic accident along a route usually taken by the user tothe mall; weather information 410 indicating rain; and supplementalinformation 412 indicating a new driving route and information about aholiday activity occurring at the mall on Sunday) to generate thedynamic notification 414. For example, the dynamic notification 414 mayprovide a suggestion regarding the user's usual Sunday mall activity. Inan example, the dynamic notification 414 may instruct the user to leaveearly because the mall is closing 3 hours early. The dynamicnotification 414 may indicate that a new driving route will be uploadedto a map app due to a traffic accident. The dynamic notification 414 mayindicate that the user should bring an umbrella due to potential rain.

FIG. 5 illustrates an example of a system 500 for providing a suggestion502 based upon user signal data 302 and/or a complementary calendar 304.The system 500 comprises a calendar construction component 306. In anexample, the calendar construction component 306 constructed acomplementary calendar 304 based upon the user signal data 302 (e.g.,FIG. 3). The calendar construction component 306 may evaluate a pickupsushi activity entry within the complementary calendar 304 to determinethe user has an interest in sushi stores. Accordingly, the calendarconstruction component 306 may identify a new sushi store opening nearthe user's home (e.g., a news article may identify the new sushi storeopening; a sushi store social network profile may indicate the new sushistore opening; the user signal data 302 may indicate a location of theuser's home; etc.). Supplemental information, such as a store openingarticle and/or store website link, may be populated within thesuggestion 502.

FIG. 6 illustrates an example of a system 600 for constructing a shadowcalendar 602. The system 600 comprises a calendar construction component306. In an example, the calendar construction component 306 constructeda complementary calendar 304 (e.g., FIG. 3) and/or may have access to aprimary calendar 214 of a user 202 of a device 204 (e.g., FIG. 2). Theprimary calendar 214 may comprise one or more user entries generated bythe user 202, such as a pickup groceries user entry for Tuesday at 7:00and/or a cancel gym membership user entry for Tuesday. The complementarycalendar 304 may comprise one or more entries (e.g. automaticallygenerated entries) corresponding to inferences derived from usersignals. The calendar construction component 306 may merge the primarycalendar 214 (e.g., user specified entries), the complementary calendar304 (e.g., automatically generated/inferred entries), and/or one or morepotential official calendars 416 (e.g., a family calendar, a soccerschedule calendar, a school schedule calendar, a social networkcalendar, etc.) to create the shadow calendar 602. In this way, theshadow calendar 602 comprises at least some of the primary calendar 214and at least some of the complementary calendar 304. In an example, theprimary calendar 214 may be used to validate and/or adjust entrieswithin the complementary calendar and/or the shadow calendar 602, suchas removing a run to gym activity entry on Sunday from the complementarycalendar 304 (e.g., FIG. 3) and/or the shadow calendar 602 based uponthe cancel gym membership user entry for Tuesday.

FIG. 7 illustrates an example of a system 700 for providing a conflictalert 702 based upon a shadow calendar 602. The system 700 comprises acalendar construction component 306. In an example, the calendarconstruction component 306 constructed a shadow calendar 602 by merginga primary calendar 214 and a complementary calendar 304 (e.g., FIG. 6).Because the shadow calendar 602 may be populated with entries from theprimary calendar 214 and the complementary calendar 304, the calendarconstruction component 306 may evaluate the shadow calendar 602 toidentify conflicts, such as a conflict 704 between a soccer practiceactivity entry for Tuesday between 6:00 and 8:00 from the complementarycalendar 304 and a pickup groceries user entry for Tuesday at 7:00 fromthe primary calendar 214. The calendar construction component 306 mayprovide a conflict alert 702 specifying the conflict 704 and/or aconflict suggestion 706, such as a suggestion to grocery shop at agrocery store located across the street from a soccer field where soccerpractice is to take place.

FIG. 8 illustrates an example of a system 800 for providing a dynamicnotification 802 based upon a complementary calendar 304. The system 800comprises a calendar construction component 306. In an example, thecalendar construction component 306 constructed a complementary calendar304 (e.g., FIG. 3). The complementary calendar 304 may comprise a dinnerdate with wife activity entry for Friday at 8:00. The calendarconstruction component 306 may determine that a current location of theuser and a current time will put the user as arriving 20 minutes latefor the dinner date. The calendar construction component 306 may providethe dynamic notification 802 indicating that an automated text messagecould be sent to the wife regarding the new arrival time (e.g., a sendmessage button and/or a modify message text box may be provided to theuser).

Still another embodiment involves a computer-readable medium comprisingprocessor-executable instructions configured to implement one or more ofthe techniques presented herein. An example embodiment of acomputer-readable medium or a computer-readable device is illustrated inFIG. 9, wherein the implementation 900 comprises a computer-readablemedium 908, such as a CD-R, DVD-R, flash drive, a platter of a hard diskdrive, etc., on which is encoded computer-readable data 906. Thiscomputer-readable data 906, such as binary data comprising at least oneof a zero or a one, in turn comprises a set of computer instructions 904configured to operate according to one or more of the principles setforth herein. In some embodiments, the processor-executable computerinstructions 904 are configured to perform a method 902, such as atleast some of the exemplary method 100 of FIG. 1, for example. In someembodiments, the processor-executable instructions 904 are configured toimplement a system, such as at least some of the exemplary system 300 ofFIG. 3, at least some of the exemplary system 400 of FIG. 4, at leastsome of the exemplary system 500 of FIG. 5, at least some of theexemplary system 600 of FIG. 6, at least some of the exemplary system700 of FIG. 7, and/or at least some of the exemplary system 800 of FIG.8, for example. Many such computer-readable media are devised by thoseof ordinary skill in the art that are configured to operate inaccordance with the techniques presented herein.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing at least some of the claims.

As used in this application, the terms “component,” “module,” “system”,“interface”, and/or the like are generally intended to refer to acomputer-related entity, either hardware, a combination of hardware andsoftware, software, or software in execution. For example, a componentmay be, but is not limited to being, a process running on a processor, aprocessor, an object, an executable, a thread of execution, a program,and/or a computer. By way of illustration, both an application runningon a controller and the controller can be a component. One or morecomponents may reside within a process and/or thread of execution and acomponent may be localized on one computer and/or distributed betweentwo or more computers.

Furthermore, the claimed subject matter may be implemented as a method,apparatus, or article of manufacture using standard programming and/orengineering techniques to produce software, firmware, hardware, or anycombination thereof to control a computer to implement the disclosedsubject matter. The term “article of manufacture” as used herein isintended to encompass a computer program accessible from anycomputer-readable device, carrier, or media. Of course, manymodifications may be made to this configuration without departing fromthe scope or spirit of the claimed subject matter.

FIG. 10 and the following discussion provide a brief, generaldescription of a suitable computing environment to implement embodimentsof one or more of the provisions set forth herein. The operatingenvironment of FIG. 10 is only one example of a suitable operatingenvironment and is not intended to suggest any limitation as to thescope of use or functionality of the operating environment. Examplecomputing devices include, but are not limited to, personal computers,server computers, hand-held or laptop devices, mobile devices (such asmobile phones, Personal Digital Assistants (PDAs), media players, andthe like), multiprocessor systems, consumer electronics, mini computers,mainframe computers, distributed computing environments that include anyof the above systems or devices, and the like.

Although not required, embodiments are described in the general contextof “computer readable instructions” being executed by one or morecomputing devices. Computer readable instructions may be distributed viacomputer readable media (discussed below). Computer readableinstructions may be implemented as program modules, such as functions,objects, Application Programming Interfaces (APIs), data structures, andthe like, that perform particular tasks or implement particular abstractdata types. Typically, the functionality of the computer readableinstructions may be combined or distributed as desired in variousenvironments.

FIG. 10 illustrates an example of a system 1000 comprising a computingdevice 1012 configured to implement one or more embodiments providedherein. In one configuration, computing device 1012 includes at leastone processing unit 1016 and memory 1018. Depending on the exactconfiguration and type of computing device, memory 1018 may be volatile(such as RAM, for example), non-volatile (such as ROM, flash memory,etc., for example) or some combination of the two. This configuration isillustrated in FIG. 10 by dashed line 1014.

In other embodiments, device 1012 may include additional features and/orfunctionality. For example, device 1012 may also include additionalstorage (e.g., removable and/or non-removable) including, but notlimited to, magnetic storage, optical storage, and the like. Suchadditional storage is illustrated in FIG. 10 by storage 1020. In oneembodiment, computer readable instructions to implement one or moreembodiments provided herein may be in storage 1020. Storage 1020 mayalso store other computer readable instructions to implement anoperating system, an application program, and the like. Computerreadable instructions may be loaded in memory 1018 for execution byprocessing unit 1016, for example.

The term “computer readable media” as used herein includes computerstorage media. Computer storage media includes volatile and nonvolatile,removable and non-removable media implemented in any method ortechnology for storage of information such as computer readableinstructions or other data. Memory 1018 and storage 1020 are examples ofcomputer storage media. Computer storage media includes, but is notlimited to, RAM, ROM, EEPROM, flash memory or other memory technology,CD-ROM, Digital Versatile Disks (DVDs) or other optical storage,magnetic cassettes, magnetic tape, magnetic disk storage or othermagnetic storage devices, or any other medium which can be used to storethe desired information and which can be accessed by device 1012.Computer storage media does not, however, include propagated signals.Rather, computer storage media excludes propagated signals. Any suchcomputer storage media may be part of device 1012.

Device 1012 may also include communication connection(s) 1026 thatallows device 1012 to communicate with other devices. Communicationconnection(s) 1026 may include, but is not limited to, a modem, aNetwork Interface Card (NIC), an integrated network interface, a radiofrequency transmitter/receiver, an infrared port, a USB connection, orother interfaces for connecting computing device 1012 to other computingdevices. Communication connection(s) 1026 may include a wired connectionor a wireless connection. Communication connection(s) 1026 may transmitand/or receive communication media.

The term “computer readable media” may include communication media.Communication media typically embodies computer readable instructions orother data in a “modulated data signal” such as a carrier wave or othertransport mechanism and includes any information delivery media. Theterm “modulated data signal” may include a signal that has one or moreof its characteristics set or changed in such a manner as to encodeinformation in the signal.

Device 1012 may include input device(s) 1024 such as keyboard, mouse,pen, voice input device, touch input device, infrared cameras, videoinput devices, and/or any other input device. Output device(s) 1022 suchas one or more displays, speakers, printers, and/or any other outputdevice may also be included in device 1012. Input device(s) 1024 andoutput device(s) 1022 may be connected to device 1012 via a wiredconnection, wireless connection, or any combination thereof. In oneembodiment, an input device or an output device from another computingdevice may be used as input device(s) 1024 or output device(s) 1022 forcomputing device 1012.

Components of computing device 1012 may be connected by variousinterconnects, such as a bus. Such interconnects may include aPeripheral Component Interconnect (PCI), such as PCI Express, aUniversal Serial Bus (USB), firewire (IEEE 1394), an optical busstructure, and the like. In another embodiment, components of computingdevice 1012 may be interconnected by a network. For example, memory 1018may be comprised of multiple physical memory units located in differentphysical locations interconnected by a network.

Those skilled in the art will realize that storage devices utilized tostore computer readable instructions may be distributed across anetwork. For example, a computing device 1030 accessible via a network1028 may store computer readable instructions to implement one or moreembodiments provided herein. Computing device 1012 may access computingdevice 1030 and download a part or all of the computer readableinstructions for execution. Alternatively, computing device 1012 maydownload pieces of the computer readable instructions, as needed, orsome instructions may be executed at computing device 1012 and some atcomputing device 1030.

Various operations of embodiments are provided herein. In oneembodiment, one or more of the operations described may constitutecomputer readable instructions stored on one or more computer readablemedia, which if executed by a computing device, will cause the computingdevice to perform the operations described. The order in which some orall of the operations are described should not be construed as to implythat these operations are necessarily order dependent. Alternativeordering will be appreciated by one skilled in the art having thebenefit of this description. Further, it will be understood that not alloperations are necessarily present in each embodiment provided herein.Also, it will be understood that not all operations are necessary insome embodiments.

Further, unless specified otherwise, “first,” “second,” and/or the likeare not intended to imply a temporal aspect, a spatial aspect, anordering, etc. Rather, such terms are merely used as identifiers, names,etc. for features, elements, items, etc. For example, a first object anda second object generally correspond to object A and object B or twodifferent or two identical objects or the same object.

Moreover, “exemplary” is used herein to mean serving as an example,instance, illustration, etc., and not necessarily as advantageous. Asused herein, “or” is intended to mean an inclusive “or” rather than anexclusive “or”. In addition, “a” and “an” as used in this applicationare generally be construed to mean “one or more” unless specifiedotherwise or clear from context to be directed to a singular form. Also,at least one of A and B and/or the like generally means A or B or both Aand B. Furthermore, to the extent that “includes”, “having”, “has”,“with”, and/or variants thereof are used in either the detaileddescription or the claims, such terms are intended to be inclusive in amanner similar to the term “comprising”.

Also, although the disclosure has been shown and described with respectto one or more implementations, equivalent alterations and modificationswill occur to others skilled in the art based upon a reading andunderstanding of this specification and the annexed drawings. Thedisclosure includes all such modifications and alterations and islimited only by the scope of the following claims. In particular regardto the various functions performed by the above described components(e.g., elements, resources, etc.), the terms used to describe suchcomponents are intended to correspond, unless otherwise indicated, toany component which performs the specified function of the describedcomponent (e.g., that is functionally equivalent), even though notstructurally equivalent to the disclosed structure. In addition, while aparticular feature of the disclosure may have been disclosed withrespect to only one of several implementations, such feature may becombined with one or more other features of the other implementations asmay be desired and advantageous for any given or particular application.

What is claimed is:
 1. A method for constructing a complementarycalendar, comprising: identifying a user signal associated with a userof a device; and constructing a complementary calendar populated with anentry derived from the user signal.
 2. The method of claim 1, theidentifying a user signal comprising: evaluating a social networkprofile of the user to identify an activity of the user as the usersignal.
 3. The method of claim 1, the identifying a user signalcomprising: evaluating a device context of the device to identify anactivity of the user as the user signal, the device context comprisingat least one of: a device location, a device time, a mode oftransportation, a device location check-in, an alarm, a charging state,a connectivity state, or user data stored on the device.
 4. The methodof claim 1, comprising: evaluating the user signal against at least oneof traffic information, weather information, real-time data, orsupplemental information to generate a dynamic notification; andproviding the dynamic notification.
 5. The method of claim 4, thedynamic notification indicative of a meeting attendance delay, and themethod comprising: providing a notification of the meeting attendancedelay to one or more meeting attendees of a meeting.
 6. The method ofclaim 1, comprising: identifying a primary calendar of the user, theprimary calendar comprising a user entry generated by the user;evaluating the entry against the user entry to identify a conflict; andproviding a conflict alert.
 7. The method of claim 6, comprising:providing a conflict suggestion based upon the conflict.
 8. The methodof claim 1, comprising: providing a notification based upon the entry.9. The method of claim 1, comprising: displaying the complementarycalendar.
 10. The method of claim 1, the user signal comprising at leastone of temporal information or locational information, and the methodcomprising: identifying a recurring activity based upon the user signal;and deriving the entry based upon the recurring activity.
 11. The methodof claim 1, comprising: merging the complementary calendar with at leastone of a primary calendar or one or more potential official calendars tocreate a shadow calendar.
 12. The method of claim 1, comprising:generating a suggestion based upon the user signal; and providing thesuggestion.
 13. The method of claim 1, comprising: displaying thecomplementary calendar; and augmenting the entry based upon a confidencemetric.
 14. The method of claim 1, comprising: verifying the entry basedupon a primary calendar.
 15. The method of claim 1, comprising:adjusting the entry based upon a user entry within a primary calendar.16. The method of claim 1, comprising: generating a user activityinference based upon a primary calendar; and populating thecomplementary calendar with a second entry derived from the useractivity inference.
 17. The method of claim 1, comprising; automaticallypopulating the complementary calendar with a plurality of entriescorresponding to inferences derived from at least one of: one or moreuser signals, one or more real-time conditions, or a primary calendar.18. A system for constructing a complementary calendar, comprising: acalendar construction component configured to: identify a user signalassociated with a user of a device; and construct a complementarycalendar populated with an entry derived from the user signal.
 19. Thesystem of claim 18, the calendar construction component configured to:merge the complementary calendar with at least one of a primary calendaror one or more potential official calendars to create a shadow calendar.20. A computer readable medium comprising instructions which whenexecuted at least in part via a processing unit perform a method forconstructing a complementary calendar, comprising: identifying a usersignal associated with a user of a device; and constructing acomplementary calendar populated with an entry derived from the usersignal.